{{tag>serveur courriel MDA dovecot BROUILLON}}


====== Filtrage des courriels avec Dovecot ======
Dovecot est une application d'agent de distribution des courriels. Pour voir ce qu'est un agent de distribution de courriels lire [[comment_fonctionne_le_courriel_sous_linux|Comment fonctionne le courriel sous Linux ?]]

Cette application vous permet de trier et classer vos courriels à l'arrivée dans une boite aux lettres utilisateur ou dans une boite postale. Elle gère l'identification des courriels marqués comme SPAM ou comme Virus par votre MTA.

===== Installation =====
[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] de filtrages de l'agent de distribution des courriels Dovecot **[[apt>dovecot-sieve, dovecot-managesieved|dovecot-sieve dovecot-managesieved]]**.


===== Configuration =====
Pour configurer le MDA Dovecot…

==== Définir les emplacements des boîtes aux lettres des utilisateurs ====
<code bash>nano /etc/dovecot/conf.d/10-mail.conf</code>

<file>
…
mail_location = maildir:~/.local/share/courriels
…
</file>

==== Transport sécurisée SSL ====
<code bash>sudo nano /etc/dovecot/conf.d/10-auth.conf</code>

<file>
…
disable_plaintext_auth = yes
…
auth_mechanisms = plain login
…
</file>

<code bash>sudo nano /etc/dovecot/conf.d/10-ssl.conf</code>

<file>
…
ssl = yes
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/certs/ssl-cert-snakeoil.key
…
</file>
==== Activer le principe de distribution ====
Le MDA utilise deux façons de distribuer les courriels, par l'Agent de Distribution Locale (LDA), ou avec le Protocole Local de Transport des Courriels (LMTP) qui est une variante locale au serveur de messagerie du SMTP.

=== Activer le support LDA ===
<code bash>nano /etc/dovecot/15-lda.conf</code>

<file>{
…
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
protocol lda {
  mail_plugins = $mail_plugins #sieve
}</file>
==== Configuration du plugin sieve  ====
<code bash>nano /etc/dovecot/conf.d/90-sieve.conf</code>

<file>plugin {
   sieve = file:~/.sieve;active=~/.dovecot.sieve
   sieve_default = /var/lib/dovecot/sieve/default.sieve
}</file>

==== Configuration du serveur de messagerie MTA ====
=== Postfix ===

=== Exim4 ===
[[https://medspx.fr/blog/Debian/dovecot_sieve/|Configuration du filtrage de Dovecot avec le langage sieve pour un serveur de messagerie MTA EXIM4]]

===== Créer des filtres =====
==== Création de règles globales ====
<code bash>sudo mkdir /var/lib/dovecot/sieve/
sudo nano /var/lib/dovecot/sieve/default.sieve</code>

L'exemple de règles suivant déplace automatiquement les courriels indésirables de la boîte de réception vers le dossier indésirable SPAMs. X-Spam-Flag est ajouté par spamassassin et amavis par le serveur MTA.
<file>require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
  fileinto "SPAMs";
}</file>

<code bash>sudo sievec /var/lib/dovecot/sieve/default.sieve</code>
==== Création de règles utilisateur ====
<code bash>nano ~/.dovecot.sieve</code>

<file>require "fileinto";

if exists "X-Spam-Flag" {
  # Store spam tagged by SpamAssassin into dedicated Spam folder
  if header :contains "X-Spam-Flag" "YES" {
    fileinto "Spam";
  }
} elsif exists "X-Cron-Env" {
  # Store mails from Cron daemon in dedicated folder
  fileinto "cron";
} elsif exists "List-Id" {
  # File list-mail into dedicated folders, matching on List-Id
  if header :contains "List-Id" "boost-users.lists.boost.org" {
    fileinto "boost-users";
  } elsif header :contains "List-Id" "brltty.mielke.cc" {
    fileinto "brltty";
  } elsif header :contains "List-Id" "debian-accessibility.lists.debian.org" {
    fileinto "debian-accessibility";
  } elsif header :contains "List-Id" "debian-devel-announce.lists.debian.org" {
    fileinto "debian-devel-announce";
  } elsif header :contains "List-Id" "debian-devel.lists.debian.org" {
    fileinto "debian-devel";
  } elsif header :contains "List-Id" "spirit-general.lists.sourceforge.net" {
    fileinto "spirit-general";
  }
  # ...
}</file>